#include <bits/stdc++.h>
using namespace std;
using uint=unsigned int;
using ll=long long;
using ull=unsigned long long;
using i128=__int128;
const int N=1e9+5;

struct ty{
    int id;
    int lei;
};

bool cmp(ty a,ty b){
    return a.id<b.id;
}

void solve(){
    int n;
    cin>>n;
    vector<ty> a(n);
    map<int,int> mp;
    for(int i=0;i<n;i++){
        cin>>a[i].id>>a[i].lei;
        mp[a[i].lei]++;
    }
    sort(a.begin(),a.end(),cmp);
    int cnt=mp.size();
    int r=0,len=N;
    map<int,int> mpt;
    for(int l=0;l<n;l++){
        while(r<n){
            mpt[a[r].lei]++;
            if(mpt.size()==cnt){
                len=min(len,a[r].id-a[l].id);
                 mpt[a[l].lei]--;
                if(mpt[a[l].lei]==0){
                    mpt.erase(a[l].lei);
                }
                break;
            }
            r++;
        }
    }
    cout<<len<<endl;
    return;
}

int main(){
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    cout.tie(nullptr);
    solve();

    return 0;
}